package ch.bfh.swos.learnaid.service;

import javax.inject.Inject;

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import ch.bfh.swos.learnaid.service.dto.TagDTO;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/serviceContext.xml")
public class TagServiceIT {

    @Inject
    private TagService tagService;

    @Test
    public void test() {
     // Create
        TagDTO newTag= new TagDTO();
        newTag.setLabel("Label");
        newTag= tagService.create(newTag);

        // Read
        TagDTO readTag= tagService.read(newTag.getId());
        Assert.assertTrue(newTag.getLabel().equals(readTag.getLabel()));

        // Update
        readTag.setLabel("NewLabel");;
        readTag = tagService.update(readTag);
        TagDTO updatedTag= tagService.read(readTag.getId());
        Assert.assertTrue(readTag.getLabel().equals(updatedTag.getLabel()));

        // Delete
        tagService.delete(updatedTag);
        TagDTO deletedTag = tagService.read(readTag.getId());
        Assert.assertNull(deletedTag);
    }

}
